home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / ssytrd.z / ssytrd
Text File  |  1996-03-14  |  6KB  |  199 lines

  1.  
  2.  
  3.  
  4. SSSSSSSSYYYYTTTTRRRRDDDD((((3333FFFF))))                                                          SSSSSSSSYYYYTTTTRRRRDDDD((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SSYTRD - reduce a real symmetric matrix A to real symmetric tridiagonal
  10.      form T by an orthogonal similarity transformation
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE SSYTRD( UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO )
  14.  
  15.          CHARACTER      UPLO
  16.  
  17.          INTEGER        INFO, LDA, LWORK, N
  18.  
  19.          REAL           A( LDA, * ), D( * ), E( * ), TAU( * ), WORK( * )
  20.  
  21. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  22.      SSYTRD reduces a real symmetric matrix A to real symmetric tridiagonal
  23.      form T by an orthogonal similarity transformation:  Q**T * A * Q = T.
  24.  
  25.  
  26. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  27.      UPLO    (input) CHARACTER*1
  28.              = 'U':  Upper triangle of A is stored;
  29.              = 'L':  Lower triangle of A is stored.
  30.  
  31.      N       (input) INTEGER
  32.              The order of the matrix A.  N >= 0.
  33.  
  34.      A       (input/output) REAL array, dimension (LDA,N)
  35.              On entry, the symmetric matrix A.  If UPLO = 'U', the leading N-
  36.              by-N upper triangular part of A contains the upper triangular
  37.              part of the matrix A, and the strictly lower triangular part of A
  38.              is not referenced.  If UPLO = 'L', the leading N-by-N lower
  39.              triangular part of A contains the lower triangular part of the
  40.              matrix A, and the strictly upper triangular part of A is not
  41.              referenced.  On exit, if UPLO = 'U', the diagonal and first
  42.              superdiagonal of A are overwritten by the corresponding elements
  43.              of the tridiagonal matrix T, and the elements above the first
  44.              superdiagonal, with the array TAU, represent the orthogonal
  45.              matrix Q as a product of elementary reflectors; if UPLO = 'L',
  46.              the diagonal and first subdiagonal of A are over- written by the
  47.              corresponding elements of the tridiagonal matrix T, and the
  48.              elements below the first subdiagonal, with the array TAU,
  49.              represent the orthogonal matrix Q as a product of elementary
  50.              reflectors. See Further Details.  LDA     (input) INTEGER The
  51.              leading dimension of the array A.  LDA >= max(1,N).
  52.  
  53.      D       (output) REAL array, dimension (N)
  54.              The diagonal elements of the tridiagonal matrix T:  D(i) =
  55.              A(i,i).
  56.  
  57.      E       (output) REAL array, dimension (N-1)
  58.              The off-diagonal elements of the tridiagonal matrix T:  E(i) =
  59.              A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSSSSSYYYYTTTTRRRRDDDD((((3333FFFF))))                                                          SSSSSSSSYYYYTTTTRRRRDDDD((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      TAU     (output) REAL array, dimension (N-1)
  75.              The scalar factors of the elementary reflectors (see Further
  76.              Details).
  77.  
  78.      WORK    (workspace/output) REAL array, dimension (LWORK)
  79.              On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
  80.  
  81.      LWORK   (input) INTEGER
  82.              The dimension of the array WORK.  LWORK >= 1.  For optimum
  83.              performance LWORK >= N*NB, where NB is the optimal blocksize.
  84.  
  85.      INFO    (output) INTEGER
  86.              = 0:  successful exit
  87.              < 0:  if INFO = -i, the i-th argument had an illegal value
  88.  
  89. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  90.      If UPLO = 'U', the matrix Q is represented as a product of elementary
  91.      reflectors
  92.  
  93.         Q = H(n-1) . . . H(2) H(1).
  94.  
  95.      Each H(i) has the form
  96.  
  97.         H(i) = I - tau * v * v'
  98.  
  99.      where tau is a real scalar, and v is a real vector with
  100.      v(i+1:n) = 0 and v(i) = 1; v(1:i-1) is stored on exit in
  101.      A(1:i-1,i+1), and tau in TAU(i).
  102.  
  103.      If UPLO = 'L', the matrix Q is represented as a product of elementary
  104.      reflectors
  105.  
  106.         Q = H(1) H(2) . . . H(n-1).
  107.  
  108.      Each H(i) has the form
  109.  
  110.         H(i) = I - tau * v * v'
  111.  
  112.      where tau is a real scalar, and v is a real vector with
  113.      v(1:i) = 0 and v(i+1) = 1; v(i+2:n) is stored on exit in A(i+2:n,i), and
  114.      tau in TAU(i).
  115.  
  116.      The contents of A on exit are illustrated by the following examples with
  117.      n = 5:
  118.  
  119.      if UPLO = 'U':                       if UPLO = 'L':
  120.  
  121.        (  d   e   v2  v3  v4 )              (  d                  )
  122.        (      d   e   v3  v4 )              (  e   d              )
  123.        (          d   e   v4 )              (  v1  e   d          )
  124.        (              d   e  )              (  v1  v2  e   d      )
  125.        (                  d  )              (  v1  v2  v3  e   d  )
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SSSSSSSSYYYYTTTTRRRRDDDD((((3333FFFF))))                                                          SSSSSSSSYYYYTTTTRRRRDDDD((((3333FFFF))))
  137.  
  138.  
  139.  
  140.      where d and e denote diagonal and off-diagonal elements of T, and vi
  141.      denotes an element of the vector defining H(i).
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.